The present invention relates to video signal transmission systems. More particularly, the present invention relates to an arrangement and method for concealing errors occurring during the transmission of a video signal data stream.
In some types of image transmission applications, such as video conferencing applications, a video camera captures a series of video frames of a target. The series of video frames is typically encoded as a data stream at one location and sent over a communications channel to another location. For example, the data stream may be transmitted over a phone line, an integrated services digital network (ISDN) line, or the Internet. In certain other image transmission applications, the encoded data stream is sent from one component, such as a CD-ROM drive, of a system to another component, for example, a central processing unit (CPU), of the same system.
An encoder at the sending location typically divides the frames into a number of data packets, such as macroblocks or groups of blocks (GOBs). Certain patterns are typically repeated in the data stream, resulting in various conditions collectively known as redundancy. For example, spatial redundancy occurs when a pattern appears at several locations in a data packet. Another type of redundancy, known as temporal redundancy, occurs when a pattern appears in a group of related frames. Some patterns exhibit both spatial and temporal redundancy.
The encoder typically compresses the data packets according to a video compression standard, such as the ITU-T H.261 or H.263 standard, by reducing redundancy within the data. For example, some compression techniques, known collectively as interframe compression, reduce spatial and temporal redundancy across a series of related frames and encodes series of frames as data packets known as interframes. Interframe compression encodes data packets of this type as a function of a previous frame and on difference information representing a difference between the previous frame and the frame to be transmitted.
Other compression techniques, known collectively as intraframe compression, compress data by reducing spatial redundancy within a single frame and encodes frames as data packets known as intraframes. Data packets of this type, therefore, can be decoded into frames without reference to previous frames. GOBs may be compressed using similar techniques and encoded as data packets known as inter-GOBs or intra-GOBs.
A decoder at a remote location typically decodes a data stream into a series of frames and causes the frames to be displayed on a display device, such as a computer monitor or television screen. Ideally, the frames received and displayed at the remote location are identical to the frames transmitted from the local location.
The communications channel, however, is often susceptible to various flaws that introduce errors into the data stream, such as bit errors, burst errors, and lost packets. Furthermore, equipment failures and software bugs may also corrupt the data stream. Such errors often cause visible anomalies, known as artifacts, to appear in the received frames. When anomalies appear, the received frames differ from the transmitted frames. When the data stream is corrupted, the decoder typically resynchronizes with the incoming data stream in order to receive subsequent frames properly.
One type of resynchronization technique involves finding a predefined start code that indicates the beginning of a frame or GOB or the end of a sequence of frames. The start code is typically a unique bit pattern, such as a pattern that has no other meaning in a legal data stream. After resynchronization, the decoder requests an intraframe or intra-GOB from the encoder. Due to the difficulty of detecting an error before it manifests as an illegal codeword or value, the request typically issues some time after the data stream error has occurred. Visible artifacts are usually already present in the decoded image at this point.
According to a system implementation of the present invention, a videoconferencing system transmits a data stream representing video data between first and second locations using a communications channel. The data stream contains data representing images. The videoconferencing system comprises: a data processing arrangement, configured and arranged to decode the data stream into image data, to locate a corrupted data segment in a current set of image data, and to replace the corrupted data segment with a replacement data segment generated as a function of a previous set of image data in response to an error detected in the data stream.
Another implementation of the present invention is directed to a video signal decoding arrangement for decoding a data stream into a series of images. The video signal decoding arrangement comprises: a data processing arrangement, configured and arranged to decode the data stream into image data, and to replace a corrupted data segment in a current set of image data with a replacement data segment generated as a function of a previous set of image data in response to an error detected in the data stream.
According to another implementation of the present invention, a video signal decoding arrangement for decoding a data stream comprising a series of sets of data containing start codes into a series of images is provided. The video signal decoding arrangement comprises a data processing arrangement, configured and arranged to decode the data stream into image data, to replace a corrupted data segment in a current set of image data with a replacement data segment generated as a function of a previous set of image data in response to an error detected in the data stream, and to locate a start code corresponding to a subsequent set of data.
Still another implementation of the present invention is directed to a video signal decoding arrangement for decoding a data stream comprising a series of sets of data containing delimiting codes into a series of images. The video signal decoding arrangement comprises: a video data processor, responsive to the data stream and to an error that affects the data stream such that a first set of data of the series of sets of data includes a corrupted data segment, the video data processor being configured and arranged to replace the corrupted data segment with a replacement data segment generated as a function of a second set of data of the series of sets of data; first and second frame buffers, responsive to the data processor and configured and arranged to store alternately each of the series of sets of data as an image in response to a first pointer; and a first-in-first-out buffer, configured and arranged to receive the data stream.
According to a method implementation of the present invention, an artifact concealment method for concealing artifacts in decoded video signal data is provided. The artifact concealment method comprises: detecting an error in a data stream including first and second sets of data representing images, the error affecting the second set of data such that the second set of data includes a corrupted data segment; replacing the corrupted data segment with a replacement data segment generated as a function of the first set of data, thereby generating a modified second set of data; storing the first and modified second sets of data respectively as first and second images; and locating a delimiting code corresponding to a third set of data representing an image in the data stream.
The above summary of the invention is not intended to describe each disclosed embodiment of the present invention. This is the purpose of the figures and of the detailed description that follows.